在int b[ ][3]={{1},{2,3},{4,5,6},{0}};b[2][3]的值是

来源:百度知道 编辑:UC知道 时间:2024/06/30 05:14:04

数组下标越界了

#include<stdio.h>
#include<stdlib.h>
int main()
{
int b[][3]={{1},{2,3},{4,5,6},{0}};
printf("%d\n",b[2][3]);
int i,j;
for (i=0;i<=2;i++)
{ for( j=0;j<=3;j++)
printf("%d ",b[i][j]);
printf("\n");}
system("pause");
return 0;
}
0
1 0 0 2
2 3 0 4
4 5 6 0
请按任意键继续. .

b[2][3]这种写法虽然不太好,但从语法上说, 还是有明确的含义的.
它相当于b[2][2]的下一个位置的元素, 所以它相当于b[3][0], 即0

b[0][3],b[1][3],b[2][3],b[3][3],b[3][2],b[3][1],b[3][0]等都越界

很明显越界了嘛,下标是从0开始的,b[2][3]中,第二个[3]已经越界了,定义中3表示有3个元素,而b[2][3]已经表示第4个元素了

很明显,已经越界了!